package br.gov.mi.corporativo.dominio.boundary.comum.municipiopopulacao;


import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import br.gov.mi.corporativo.dominio.entidade.comum.MunicipioPopulacao;


@Path("populacoes")
public class MunicipioPopulacaoRestAdapter extends SpringBeanAutowiringSupport {


	@Autowired
	private MunicipioPopulacaoEndPoint service;
	
	@GET
	@Produces({MediaType.APPLICATION_JSON})
	public Iterable<MunicipioPopulacao> recuperarTodos(){
		return service.recuperarTodos();
	}
	
	@GET
	@Path("id/{id}")
	@Produces({MediaType.APPLICATION_JSON})
	public MunicipioPopulacao recuperarPorId(@PathParam("idMunicipioPopulacao")Long idMunicipioPopulacao){
		return service.recuperarPorIdMunicipioPopulacao(idMunicipioPopulacao);
	}
	
	@GET
	@Path("municipio/{idMunicipio}")
	@Produces({MediaType.APPLICATION_JSON})
	public MunicipioPopulacao recuperarPorIdMunicipio(@PathParam("municipio")Long municipio){
		return service.recuperarPorMunicipio(municipio);
	}
	
	@GET
	@Path("ano/{nrAno}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<MunicipioPopulacao> recuperarPorNrAno(@PathParam("nrAno")Long nrAno){
		return service.recuperarPorNrAno(nrAno);
	}
	
	@GET
	@Path("populacao/{qtPopulacao}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<MunicipioPopulacao> recuperarPorQtPopulacao(@PathParam("qtPopulacao")Long qtPopulacao){
		return service.recuperarPorQtPopulacao(qtPopulacao);
	}
	
	@GET
	@Path("populacaoocupada/{qtPopulacaoOcupada}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<MunicipioPopulacao> recuperarPorQtPopulacaoOcupada(@PathParam("qtPopulacaoOcupada")Long qtPopulacaoOcupada){
		return service.recuperarPorQtPopulacaoOcupada(qtPopulacaoOcupada);
	}
	
	@GET
	@Path("populacaoassalariada/{qtPopulacaoAssalariada}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<MunicipioPopulacao> recuperarPorQtPopulacaoAssalariada(@PathParam("qtPopulacaoAssalariada")Long qtPopulacaoAssalariada){
		return service.recuperarPorQtPopulacaoAssalariada(qtPopulacaoAssalariada);
	}
	
	@GET
	@Path("unidades/{qtUinidades}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<MunicipioPopulacao> recuperarPorQtUinidades(@PathParam("qtUinidades")Long qtUinidades){
		return service.recuperarPorQtUinidades(qtUinidades);
	}
	
	@GET
	@Path("salarioremuneracao/{vlSalarioRemuneracao}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<MunicipioPopulacao> recuperarPorVlSalarioRemuneracao(@PathParam("vlSalarioRemuneracao")Long vlSalarioRemuneracao){
		return service.recuperarPorVlSalarioRemuneracao(vlSalarioRemuneracao);
	}
	
}
